/*
 * Copyright [2022] [https://www.xiaonuo.vip]
 *
 * Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：
 *
 * 1.请不要删除和修改根目录下的LICENSE文件。
 * 2.请不要删除和修改Snowy源码头部的版权声明。
 * 3.本项目代码可免费商业使用，商业使用请保留源码和相关描述文件的项目出处，作者声明等。
 * 4.分发源码时候，请注明软件出处 https://www.xiaonuo.vip
 * 5.不可二次分发开源参与同类竞品，如有想法可联系团队xiaonuobase@qq.com商议合作。
 * 6.若您的项目无法满足以上几点，需要更多功能代码，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package vip.xiaonuo.biz.modular.itbaseuser.param;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import org.noear.solon.validation.annotation.NotBlank;
import org.noear.solon.validation.annotation.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * itest用户表添加参数
 *
 * @author lrw
 * @date  2025/09/14 15:02
 **/
@Getter
@Setter
public class ItBaseUserAddParam {

    /** 用户名, 登录用户名 */
    @ApiModelProperty(value = "用户名, 登录用户名", position = 2)
    private String username;

    /** 密码 */
    @ApiModelProperty(value = "密码", position = 3)
    private String userpass;

    /** 姓名 */
    @ApiModelProperty(value = "姓名", position = 4)
    private String realname;

    /** 用户角色id，关联base_user_group表的主键 */
    @ApiModelProperty(value = "用户角色id，关联base_user_group表的主键", position = 5)
    private Integer usergroupid;

    /** 冗余字段，关联base_user_group表的数据的userType字段，用户类型 =1学生 =10教师 =20管理员 */
    @ApiModelProperty(value = "冗余字段，关联base_user_group表的数据的userType字段，用户类型 =1学生 =10教师 =20管理员", position = 6)
    private Integer usertype;

    /** 用户头像地址 */
    @ApiModelProperty(value = "用户头像地址", position = 7)
    private String userpic;

    /** 用户编码，多半是学号，导入用户数据时可能需要匹配这个字段 */
    @ApiModelProperty(value = "用户编码，多半是学号，导入用户数据时可能需要匹配这个字段", position = 8)
    private String usercode;

    /** 用户编码类型 =0直接注册  =1学号导入， 还可以支持联合网站登录 */
    @ApiModelProperty(value = "用户编码类型 =0直接注册  =1学号导入， 还可以支持联合网站登录", position = 9)
    private Integer usercodetype;

    /** 班级ID, 学生所属的班级，非必须，学生导入的第一个班级，关联cls表 */
    @ApiModelProperty(value = "班级ID, 学生所属的班级，非必须，学生导入的第一个班级，关联cls表", position = 10)
    private Integer clsid;

    /** 年级ID, 非必须，关联grade表， TODO：有没有留级的学生关联多个grade */
    @ApiModelProperty(value = "年级ID, 非必须，关联grade表， TODO：有没有留级的学生关联多个grade", position = 11)
    private Integer gradeid;

    /** 学院/系ID，非必须，关联faculty表 */
    @ApiModelProperty(value = "学院/系ID，非必须，关联faculty表", position = 12)
    private Integer facultyid;

    /** 校区ID，非必须，关联campus表 */
    @ApiModelProperty(value = "校区ID，非必须，关联campus表", position = 13)
    private Integer campusid;

    /** 学校ID,关联school表 */
    @ApiModelProperty(value = "学校ID,关联school表", position = 14)
    private Integer schoolid;

    /** 班级id集合 */
    @ApiModelProperty(value = "班级id集合", position = 15)
    private String clsesids;

    /** 性别: 0:未填 1:男 2:女 */
    @ApiModelProperty(value = "性别: 0:未填 1:男 2:女", position = 16)
    private Integer sex;

    /** 教师科目:  0:未选科目 1:英语... */
    @ApiModelProperty(value = "教师科目:  0:未选科目 1:英语...", position = 17)
    private Integer course;

    /** 学生验证码激活后的到期的加密后的时间 */
    @ApiModelProperty(value = "学生验证码激活后的到期的加密后的时间", position = 18)
    private String validitydate;

    /** 手机号 */
    @ApiModelProperty(value = "手机号", position = 19)
    private String mobile;

    /** email */
    @ApiModelProperty(value = "email", position = 20)
    private String email;

    /** 固定电话 */
    @ApiModelProperty(value = "固定电话", position = 21)
    private String tel;

    /** <此字段暂时用来存储学生是否有学校考试，请勿删除！> */
    @ApiModelProperty(value = "<此字段暂时用来存储学生是否有学校考试，请勿删除！>", position = 22)
    private String weixin;

    /** 状态 1:正常 0:隐藏/锁定/停用 */
    @ApiModelProperty(value = "状态 1:正常 0:隐藏/锁定/停用", position = 23)
    private Integer status;

    /** 首次登录的标识0未登录，1首次登录 2登录后未修改信息3登录后为修改密码4都改完了 */
    @ApiModelProperty(value = "首次登录的标识0未登录，1首次登录 2登录后未修改信息3登录后为修改密码4都改完了", position = 24)
    private Integer stepflag;

    /** 创建时间 */
    @ApiModelProperty(value = "创建时间", position = 25)
    private Date createtime;

    /** 创建人ID */
    @ApiModelProperty(value = "创建人ID", position = 26)
    private Integer createuid;

    /** 更新时间 */
    @ApiModelProperty(value = "更新时间", position = 27)
    private Date updatetime;

    /** 更新人ID */
    @ApiModelProperty(value = "更新人ID", position = 28)
    private Integer updateuid;

    /** 假删除标识 */
    @ApiModelProperty(value = "假删除标识", position = 29)
    private Boolean delflag;

    /** 是否阅读用户协议 0未读 1已读 */
    @ApiModelProperty(value = "是否阅读用户协议 0未读 1已读", position = 30)
    private Boolean agreementflag;

    /** 教师认证码 */
    @ApiModelProperty(value = "教师认证码", position = 31)
    private String authcode;

}
